Processing and visualizing large-scale dataset can present a number of challenges. For instance, generating visualizations with millions of graphical elements may be visually incomprehensible to a user and be of little analytical value. In addition, processing and rendering such a large number of data objects can be computationally expensive. When working with such large-scale datasets, conventional communication schemes between a frontend component and a backend component can overload a communication channel or overload a frontend component with processing.